{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": [],
      "machine_shape": "hm",
      "authorship_tag": "ABX9TyNt7Aa6xB1nlBtCPHKPsmzB",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/DanielWarfield1/MLWritingAndResearch/blob/main/MultimodalRAG.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Multimodal RAG\n",
        "building multimodal RAG from a conceptual prospective\n",
        "\n",
        "https://colab.research.google.com/drive/1sVWzo_7iKAyXl1lLTXYE18bIWOkAcJiC?usp=sharing#scrollTo=g9JyFSCBhzV7\n",
        "https://github.com/google-gemini/cookbook/blob/main/quickstarts/Audio.ipynb\n",
        "https://huggingface.co/docs/transformers/en/model_doc/speech_to_text\n",
        "https://huggingface.co/openai/clip-vit-base-patch16\n",
        "https://ai.google.dev/api/python/google/generativeai/GenerativeModel"
      ],
      "metadata": {
        "id": "-3PCNYCMNKL4"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# make an API key\n",
        "https://aistudio.google.com/app/apikey\n"
      ],
      "metadata": {
        "id": "g1e4h6EUFQNh"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Setup"
      ],
      "metadata": {
        "id": "YY2jbQYOFl1b"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "!pip install pydub"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "e--m2sGlZLFc",
        "outputId": "2e1f81e2-0b6f-4476-d3ee-27d034c3d48a"
      },
      "execution_count": 1,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Requirement already satisfied: pydub in /usr/local/lib/python3.10/dist-packages (0.25.1)\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import os\n",
        "import google.generativeai as genai\n",
        "from google.colab import userdata\n",
        "\n",
        "os.environ[\"GOOGLE_API_KEY\"] = userdata.get('GeminiAPIKey')\n",
        "genai.configure(api_key=os.environ[\"GOOGLE_API_KEY\"])"
      ],
      "metadata": {
        "id": "kKTCSAX8L2T6"
      },
      "execution_count": 2,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Getting Multimodal Data"
      ],
      "metadata": {
        "id": "JDB8DnXNM05z"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import requests\n",
        "from PIL import Image\n",
        "from IPython.display import display\n",
        "import os\n",
        "\n",
        "# Loading image\n",
        "url = 'https://github.com/DanielWarfield1/MLWritingAndResearch/blob/main/Assets/Multimodal/MMRAG/Lorenz_Ro28-200px.png?raw=true'\n",
        "response = requests.get(url, stream=True)\n",
        "image = Image.open(response.raw).convert('RGB')\n",
        "\n",
        "# Save the image locally as JPG\n",
        "save_path = 'image.jpg'\n",
        "image.save(save_path, 'JPEG')\n",
        "display(image)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 211
        },
        "id": "DobnvXldM0ww",
        "outputId": "997f699c-d78b-4db5-f40b-c0a33c3b33d1"
      },
      "execution_count": 58,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<PIL.Image.Image image mode=RGB size=200x194>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\"\"\"Downloading audio waveform from multimodal dataset\n",
        "\"\"\"\n",
        "\n",
        "from pydub import AudioSegment\n",
        "import numpy as np\n",
        "import io\n",
        "import matplotlib.pyplot as plt\n",
        "import wave\n",
        "import requests\n",
        "\n",
        "# Downloading audio file\n",
        "url = \"https://github.com/DanielWarfield1/MLWritingAndResearch/blob/main/Assets/Multimodal/MMRAG/audio.mp3?raw=true\"\n",
        "response = requests.get(url)\n",
        "audio_data = io.BytesIO(response.content)\n",
        "\n",
        "# Converting to wav and loading\n",
        "audio_segment = AudioSegment.from_file(audio_data, format=\"mp3\")\n",
        "\n",
        "# Downsampling to 16000 Hz\n",
        " #(this is necessary because a future model requires it to be at 16000Hz)\n",
        "sampling_rate = 16000\n",
        "audio_segment = audio_segment.set_frame_rate(sampling_rate)\n",
        "\n",
        "# Exporting the downsampled audio to a wav file in memory\n",
        "wav_data = io.BytesIO()\n",
        "audio_segment.export(wav_data, format=\"wav\")\n",
        "wav_data.seek(0)  # Back to beginning of IO for reading\n",
        "wav_file = wave.open(wav_data, 'rb')\n",
        "\n",
        "# converting the audio data to a numpy array\n",
        "frames = wav_file.readframes(-1)\n",
        "audio_waveform = np.frombuffer(frames, dtype=np.int16).astype(np.float32)\n",
        "\n",
        "# Rendering audio waveform\n",
        "plt.plot(audio_waveform)\n",
        "plt.title(\"Audio Waveform\")\n",
        "plt.xlabel(\"Sample Index\")\n",
        "plt.ylabel(\"Amplitude\")\n",
        "plt.show()"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 490
        },
        "id": "iSTzT-D8ZII0",
        "outputId": "9587dad9-4ed9-4fc9-c05f-cbfb3894c8b2"
      },
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Sampling rate: 16000 Hz\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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zEx8/fXXJcrMmzcPUVFRaNiwIQYNGoRq1aohOTkZcXFxuHnzJk6cOGH194KIRJB3ECARqcHzzz8veHh4CJmZmaWW6d+/v+Dq6ircvXtXEARBuHPnjtC7d2/By8tLCAgIEAYPHiycPn1a79D3v/76S6hbt67g7u4u1KtXT1i1apXw9ttvG53GQBAE4ejRo0JMTIzg7e0teHl5CZ06dRL27dtn8u8WHx8vABAACBcuXNB5rqCgQPD39xcACMuXL9d57ubNm8KLL74o+Pv7C35+fsIrr7wiJCYm6o1REAQhNjZWACBoNBrhxo0bemO5fPmy8NZbbwkhISGCq6urULFiReG5554TVq5cqS1T2jQGpr4XhdMYHDp0qMTrO3ToINSvX7/E9ipVqgg9evQosR2AMGzYML2/C5G90wgCewASERERicE+UEREREQiMYEiIiIiEokJFBEREZFITKCIiIiIRGICRURERCQSEygiIiIikTiRphUUFBQgMTERPj4+pa4JRkRERMoiCAIyMjJQoUIFODkZrmNiAmUFiYmJXHeKiIhIpW7cuIFKlSoZLMMEygoK18u6ceMG158iIiJSifT0dISFhWmv44YwgbKCwmY7X19fJlBEREQqY0r3G3YiJyIiIhKJCRQRERGRSEygiIiIiERiAkVEREQkEhMoIiIiIpGYQBERERGJxASKiIiISCQmUEREREQiMYEiIiIiEokJFBEREZFITKCIiIiIRGICRURERCQSEygiIgIACIKArNx8ucMgUgUmUEREBADot+AA6kzYiLsPs+UOhUjxmEAREREAYN/lewCAf04nyRwJkfIxgSIiIh3JaVlyh0CkeEygiIhIx3fbL8kdApHiMYEiIiIiEokJFBEREZFITKCIiIiIRGICRURERCQSEygiIrI7CXczcT8zR+4wyI4xgSIiIrty88EjdPp6B5pNjZU7lFLdfZiNj/88gSPX7ssdCpmJCRQREdmV4zdS5Q7BqAlrTuOvozfR+4c4uUMhMzGBIiIisrGr9x7JHQJZiAkUERERkUhMoIiIiIhEYgJFRACAggIBfx66gUspD+UOhUgyD7Pz5A5Br9RHHCGodkygiAgA8NfRmxjz10lEz9opdyhEFkl//DRp2n/5noyRlO52kQWbBUGQMRIyFxMoIgIAHLrK4dRkHx7lPE2gcvILZIzENEnpWcYL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PxYEQRAiIyOFoUOH6uwnIiJCaNy4sfZx9erVhaVLl+qUmTp1qhAZGal9vG/fPsHV1VWYMGGC4OLiIuzevVtvjERkHtZAEZFsevfujcTERKxduxbdunXDjh070KxZMyxatEhbZsuWLejSpQsqVqwIHx8fvPnmm7h37x4ePXqkLePl5YXq1atrHwcHB6Nq1arw9vbW2ZaSkqJz/MjIyBKPz507pzfWEydO4NKlS/Dx8dHWngUGBiIrKwuXL18W9Xs3atRI+//Q0FAA0MZ27tw5RERElBpnZmYmLl++jIEDB2rj8Pb2xueff64TR2RkJP71r39h6tSp+PjjjxEVFSUqRiIyjJ3IiUhWHh4eeOaZZ/DMM89gwoQJePfddzFp0iT0798fV69exXPPPYchQ4bgiy++QGBgIPbs2YOBAwciJycHXl5eAABXV1edfWo0Gr3bCgoKzI7z4cOHaN68OZYsWVLiufLly4vaV9HYNBoNAJgcW2H/r59//rlEouXs7Kz9f0FBAfbu3QtnZ2dcunRJVHxEZBxroIhIUerVq4fMzEwAwJEjR1BQUICZM2eidevWqFWrFhITEyU71v79+0s8rlu3rt6yzZo1w8WLFxEUFIQaNWro/Pj5+UkWU926dXHgwIFS4wwODkaFChVw5cqVEnGEh4dry3311Vc4f/48du7ciY0bN2LhwoWSxUhETKCISCb37t1D586d8X//9384efIkEhISsGLFCsyYMQM9e/YEANSoUQO5ubmYO3curly5gt9//x3z58+XLIa9e/dixowZuHDhAubNm4cVK1ZgxIgResv269cP5cqVQ8+ePbF7924kJCRgx44d+PDDD3Hz5k3JYhoxYgR+/fVXLFy4EBcuXMCkSZNw5swZnTKfffYZpk2bhjlz5uDChQs4deoUFi5ciFmzZgEAjh07hokTJ2LBggVo27YtZs2ahREjRuDKlSuSxUnk6JhAEZEsvL29ERERgdmzZ6N9+/Zo0KABJkyYgEGDBmlHizVu3BizZs3Cf/7zHzRo0ABLlizBtGnTJIvh448/xuHDh9G0aVN8/vnnmDVrFmJiYvSW9fLywq5du1C5cmW89NJLqFu3rnaKAV9fX8li6tOnDyZMmIAxY8agefPmuHbtGoYMGaJT5t1338WCBQuwcOFCNGzYEB06dMCiRYsQHh6OrKwsvPHGG+jfvz+ef/55AMB7772HTp064c0339SZyoGIzKcRBEGQOwgiIlurWrUqRo4ciZEjR8odChGpEGugiIiIiERiAkVEREQkEpvwiIiIiERiDRQRERGRSEygiIiIiERiAkVEREQkEhMoIiIiIpGYQBERERGJxASKiIiISCQmUEREREQiMYEiIiIiEokJFBEREZFI/w+WY3onDcAAlgAAAABJRU5ErkJggg==\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "\"\"\"Downloading text from multimodal dataset\n",
        "\"\"\"\n",
        "\n",
        "import requests\n",
        "\n",
        "# URL of the text file\n",
        "url = \"https://github.com/DanielWarfield1/MLWritingAndResearch/blob/main/Assets/Multimodal/MMRAG/Wiki.txt?raw=true\"\n",
        "response = requests.get(url)\n",
        "text_data = response.text\n",
        "\n",
        "# truncating length for compatability with an encoder that accepts a small context\n",
        "# a different encoder could be used which allows for larger context lengths\n",
        "text_data = text_data[:300]\n",
        "\n",
        "print(text_data)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "LA8AJN7ZZ23M",
        "outputId": "0ce1f134-b062-446e-c0b4-4920501bead0"
      },
      "execution_count": 59,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "All Quiet on the Western Front (German: Im Westen nichts Neues, lit. 'In the West, nothing new') is a semi-autobiographical novel by Erich Maria Remarque, a German veteran of World War I. The book describes the German soldiers' extreme physical and mental trauma during the war as well as the detachm\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Grounding Audio in Text\n",
        "It's hard to find a multimodal model embedding that understands audio, so I'm grounding the audio in text via a speech to text model."
      ],
      "metadata": {
        "id": "pmmemvIIbUA6"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import torch\n",
        "from transformers import Speech2TextProcessor, Speech2TextForConditionalGeneration\n",
        "\n",
        "#the model that generates text based on speech audio\n",
        "model = Speech2TextForConditionalGeneration.from_pretrained(\"facebook/s2t-medium-librispeech-asr\")\n",
        "#a processor that gets everything set up\n",
        "processor = Speech2TextProcessor.from_pretrained(\"facebook/s2t-medium-librispeech-asr\")\n",
        "\n",
        "#passing through model\n",
        "inputs = processor(audio_waveform, sampling_rate=sampling_rate, return_tensors=\"pt\")\n",
        "generated_ids = model.generate(inputs[\"input_features\"], attention_mask=inputs[\"attention_mask\"])\n",
        "\n",
        "#turning model output into text\n",
        "audio_transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]\n",
        "\n",
        "audio_transcription"
      ],
      "metadata": {
        "id": "dnA71fzvbT3w",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 218
        },
        "outputId": "74d58ba4-6171-4bc6-9965-4a57da5e8ab7"
      },
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_token.py:89: UserWarning: \n",
            "The secret `HF_TOKEN` does not exist in your Colab secrets.\n",
            "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n",
            "You will be able to reuse this secret in all of your notebooks.\n",
            "Please note that authentication is recommended but still optional to access public models or datasets.\n",
            "  warnings.warn(\n",
            "Some weights of Speech2TextForConditionalGeneration were not initialized from the model checkpoint at facebook/s2t-medium-librispeech-asr and are newly initialized: ['model.decoder.embed_positions.weights', 'model.encoder.embed_positions.weights']\n",
            "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "\"i recorded a more complex audiophile but i'm going to re record with a simpler one because it was surprisingly difficult my favorite harpist is trulo o'curlon toloh now torqualate iowa torqua\""
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            }
          },
          "metadata": {},
          "execution_count": 7
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Definign Query"
      ],
      "metadata": {
        "id": "CjrE-8AzJ3Wr"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "query = 'who is my favorite harpist?'"
      ],
      "metadata": {
        "id": "MsinpIFMJ3Nd"
      },
      "execution_count": 46,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Embedding Data\n",
        "Using a clip style model, which can embed images and text, to embed the image, text, and audio grounded in text."
      ],
      "metadata": {
        "id": "GHT5l0aoF3Vb"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from transformers import CLIPProcessor, CLIPModel\n",
        "\n",
        "# Load the model and processor\n",
        "model = CLIPModel.from_pretrained(\"openai/clip-vit-base-patch32\")\n",
        "processor = CLIPProcessor.from_pretrained(\"openai/clip-vit-base-patch32\")\n",
        "\n",
        "# Encode the image\n",
        "inputs = processor(images=image, return_tensors=\"pt\")\n",
        "image_embeddings = model.get_image_features(**inputs)\n",
        "\n",
        "# Encode the text\n",
        "inputs = processor(text=[query, audio_transcription, text_data], return_tensors=\"pt\", padding=True)\n",
        "text_embeddings = model.get_text_features(**inputs)\n",
        "\n",
        "# Print or use the embeddings\n",
        "print(\"Image Embeddings:\", image_embeddings)\n",
        "print(\"Text Embeddings:\", text_embeddings)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "8ZV4rXMyF316",
        "outputId": "7e93699c-d290-4861-f3cd-1078139dfa70"
      },
      "execution_count": 62,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Image Embeddings: tensor([[-5.2262e-02, -3.3041e-01,  2.2335e-01, -7.3059e-02, -1.5052e-01,\n",
            "         -5.1145e-02, -9.7562e-02,  3.7208e-01,  7.5285e-01,  3.3992e-02,\n",
            "          3.5383e-01,  4.1364e-01,  3.0276e-01,  5.1187e-02, -2.5875e-01,\n",
            "          4.0375e-01,  2.0690e-01, -7.6874e-02, -3.2173e-01,  3.3232e-01,\n",
            "         -9.4835e-02, -3.5299e-01, -1.7429e-01,  1.8234e-01,  1.2910e-01,\n",
            "          1.5670e-01,  6.4602e-02, -5.1670e-01, -2.8095e-01, -4.6208e-01,\n",
            "          2.6887e-01,  1.2401e-01,  2.3722e-01,  2.5057e-01, -2.1883e-01,\n",
            "         -2.1862e-01,  4.7316e-01,  9.7232e-02, -2.2566e-01, -1.2843e+00,\n",
            "         -1.5478e-01,  1.4792e-01,  1.7079e-01, -2.7122e-01,  7.0894e-02,\n",
            "         -5.7417e-01, -1.4849e-01,  5.0876e-01, -3.3328e-01,  5.5561e-02,\n",
            "         -2.1642e-01,  1.2332e-01, -5.5301e-02,  1.2325e-02, -2.0469e-01,\n",
            "         -1.5992e-01, -3.8839e-01,  4.2273e-02, -1.3538e-01,  1.3254e-01,\n",
            "          6.2206e-01, -2.0923e-01, -1.4633e-01, -1.7798e-01, -2.1673e-01,\n",
            "         -3.6287e-01, -3.6505e-01,  5.3435e-01, -4.1171e-01, -5.6199e-02,\n",
            "         -4.1467e-02, -7.5185e-03, -1.0704e-01,  5.7483e-01,  2.0449e-01,\n",
            "         -4.2255e-01,  5.2222e-02, -1.1484e-01,  8.6625e-02, -5.5165e-01,\n",
            "         -1.1745e-02,  1.9851e-01, -5.6609e-01,  2.4161e-01, -1.3207e-01,\n",
            "          2.1256e-01,  1.7631e+00, -4.2682e-01,  1.3782e-01, -3.0753e-01,\n",
            "          2.1300e-01, -1.6153e-01, -7.6560e+00,  4.8201e-01,  2.6544e-01,\n",
            "          5.7142e-01,  3.2541e-01, -5.1683e-01, -8.1767e-02, -7.7336e-01,\n",
            "          1.4419e-01, -6.5434e-01,  4.2153e-01,  2.8930e-01, -4.3552e-02,\n",
            "          4.8680e-02, -3.0365e+00,  5.8310e-01,  8.2170e-02,  6.0009e-01,\n",
            "          1.5444e-01, -5.4439e-01, -2.6880e-01,  3.0201e-01,  2.4402e-01,\n",
            "          1.6154e-04,  2.8686e-01, -4.2593e-01,  4.7053e-01,  1.5080e-01,\n",
            "         -4.5206e-01,  1.0340e-01, -9.2155e-02,  5.0387e-01,  2.7656e-02,\n",
            "          2.6360e-01, -2.8366e-01, -5.2053e-02, -2.5989e-01,  1.7418e-01,\n",
            "          5.9081e-02,  4.2165e-01,  5.9796e-02,  9.4320e-01,  5.6738e-01,\n",
            "          2.1492e-01, -8.3523e-02, -1.2137e+00, -4.6414e-01,  7.2586e-02,\n",
            "          4.7992e-02,  3.6140e-01, -5.9035e-01,  5.5877e-01, -4.5451e-01,\n",
            "          2.6635e-01, -1.5803e-01,  9.5482e-02,  2.6267e-01, -5.6817e-01,\n",
            "          7.0033e-02,  3.4733e-01,  1.0088e-01, -2.0294e-01, -1.8139e-01,\n",
            "         -2.3596e-01, -2.0816e-01, -1.2910e-01,  1.2792e-01,  2.8843e-02,\n",
            "         -7.5489e-02, -1.5935e-01, -3.0111e-02,  1.3022e-01, -1.9743e-01,\n",
            "          2.2547e-02, -2.2788e-01,  2.3035e-02, -3.5529e-02, -1.2110e-01,\n",
            "         -1.6241e-01,  2.6507e-02, -9.6675e-02,  4.5519e-02, -8.8869e-02,\n",
            "         -3.6158e-01, -9.5934e-01, -2.2664e-01,  4.9732e-01, -1.5410e-01,\n",
            "         -8.0336e-02, -3.5332e-01, -2.2875e-01, -4.2067e-01,  2.6468e-01,\n",
            "         -7.2123e-02,  7.1024e-01,  2.3715e-01,  4.0420e-01, -1.8056e-02,\n",
            "          1.8955e-01, -1.8818e-01, -1.3399e-01,  5.6328e-02,  5.6842e-02,\n",
            "          2.3329e-01, -8.0921e-02, -1.2063e-02,  6.0579e-01,  1.5333e-01,\n",
            "         -2.0138e-01,  5.6053e-02, -1.8751e-02, -5.8100e-01,  2.2028e-01,\n",
            "          9.1643e-02,  1.8452e-01, -1.0745e-01,  5.8589e-01,  5.2875e-01,\n",
            "         -4.0311e-01,  3.9527e-01, -5.5589e-01, -4.9186e-01, -2.1607e-01,\n",
            "          5.4708e-02,  6.1538e-02,  4.6627e-01, -5.2589e-01, -1.6454e-01,\n",
            "          7.1185e-01, -1.0180e-01, -1.2289e-01,  2.5440e-01,  2.9773e-01,\n",
            "         -1.4821e-01,  7.2649e-02,  8.0135e-02,  2.1830e-01,  1.2367e-01,\n",
            "         -1.2378e-01,  3.0832e-01,  1.5785e-01, -1.7721e-01, -1.6061e-01,\n",
            "          9.1353e-02,  1.7886e-01, -5.4013e-01, -1.1277e-01, -2.2473e-01,\n",
            "         -1.5872e-01, -1.1545e-01,  4.9335e-02,  1.2463e-01, -2.3022e-01,\n",
            "         -1.7631e-01,  1.8142e-01,  1.0674e-02,  5.1764e-03,  3.3521e-01,\n",
            "          4.3590e-01, -4.0902e-01,  4.0791e-01,  9.5752e-02,  2.1800e-01,\n",
            "          2.0649e-02, -2.5905e-01, -2.0175e-01, -2.7132e-01, -3.3148e-01,\n",
            "         -2.5020e-01,  5.9338e-02,  3.2488e-02, -8.6833e-03, -2.3166e-01,\n",
            "          6.2683e-02,  2.8271e-02, -1.1484e-01,  3.9083e-01, -4.0269e-01,\n",
            "          2.8942e-01,  3.6623e-01, -1.5903e-01, -1.7283e-01,  1.9111e-02,\n",
            "         -1.7436e-01, -2.4606e-01,  3.8721e-01,  3.8973e-01,  4.7434e-01,\n",
            "          1.0976e-01,  4.3969e-02,  1.9106e-02,  4.9242e-02,  2.4403e-01,\n",
            "          3.2613e-01, -1.0656e+00, -1.1716e-01, -9.6340e-02,  1.2141e-01,\n",
            "          3.1381e-01, -1.9344e-02,  9.6012e-02, -1.1751e-01, -2.8618e-02,\n",
            "          1.0398e-01, -3.0515e-02, -1.6843e-01, -2.3264e-02, -6.3128e-02,\n",
            "          4.8805e-01, -5.2420e-01, -5.2643e-01,  2.0042e-01, -7.8057e-02,\n",
            "         -2.1394e-01,  1.1248e-01,  2.0111e-01,  4.3688e-01, -7.3063e-02,\n",
            "         -1.4934e-01,  5.4568e-01,  9.4253e-01,  4.1516e-01, -2.8474e-01,\n",
            "          4.8991e-01, -1.1478e-01, -7.7944e-02, -1.4668e-01, -5.4002e-01,\n",
            "          2.7237e-01,  2.2758e+00, -2.0786e-01,  1.6930e-01, -1.4183e-01,\n",
            "         -6.1358e-02, -8.3159e-02, -3.0408e-02,  2.7689e-01,  2.1166e-01,\n",
            "         -3.7618e-02,  4.1769e-02,  1.1897e-01, -9.1160e-01, -2.8962e-02,\n",
            "         -1.0156e-01, -8.5970e-02,  3.1080e-01,  2.6906e-02,  1.1322e-01,\n",
            "         -8.1957e-02, -3.3561e-01,  1.6559e-01,  4.5641e-01, -2.3803e-01,\n",
            "          4.0125e-01,  3.2019e-02,  3.0065e-02,  3.5789e-01,  1.6861e-01,\n",
            "         -2.5631e-01,  5.8626e-02,  6.0536e-01, -2.9869e-01, -1.2923e-01,\n",
            "         -1.7509e-01, -2.7892e-01, -6.8469e-01, -1.4560e-01,  4.3964e-01,\n",
            "          9.6430e-02,  5.8429e-01, -2.5717e-01, -2.0073e-01, -1.0901e+00,\n",
            "          2.9040e-01,  4.2550e-02, -9.3313e-01,  4.2739e-01,  2.6739e-01,\n",
            "         -1.2581e-01,  3.2966e-02,  1.7966e-01, -1.4630e-01, -1.0989e-02,\n",
            "         -3.9274e-01, -7.5701e-01,  1.6616e-01,  4.0440e-02, -1.9612e-01,\n",
            "         -8.3547e-01, -7.0291e-01, -1.1709e-01, -4.7533e-01,  8.5084e-02,\n",
            "          1.7962e-02,  1.6633e-01, -5.8477e-01, -2.1464e-01,  4.8370e-01,\n",
            "         -4.9475e-01,  2.6023e-01,  7.7200e-02, -5.2664e-01,  4.9248e-02,\n",
            "         -2.9987e-01, -1.8707e-01,  3.1339e-01, -8.5115e-02, -8.2990e-01,\n",
            "          3.0954e-01, -1.6328e-03,  4.6402e-01, -2.6841e-01,  4.3996e-01,\n",
            "         -2.2318e-01,  2.1978e-02,  6.1577e-01,  6.0502e-01, -3.9381e-01,\n",
            "          6.8283e-02,  1.1522e-02, -2.7937e-02, -2.2081e-01, -3.8776e-01,\n",
            "         -1.9950e-02,  1.3454e-01, -4.9154e-01, -2.1174e-01, -1.5935e-01,\n",
            "          2.1252e-01, -8.1905e-01, -2.5095e-01, -4.6022e-01,  1.4036e-01,\n",
            "         -7.4526e-02, -5.2205e-02, -7.9744e-03, -7.5678e-01,  2.5176e-01,\n",
            "         -1.1013e-01, -1.1065e-01, -1.6334e-01, -3.3716e-01, -2.8356e-01,\n",
            "         -1.8910e-01, -1.3871e-01, -1.9671e-01,  3.1334e-01,  1.9600e-01,\n",
            "          5.3710e-02, -1.3560e-01, -4.5261e-01,  1.5608e-01,  2.3938e-01,\n",
            "         -1.9850e-01,  4.8513e-01,  1.7872e-01, -8.9452e-02,  2.1137e-01,\n",
            "          3.2296e-01, -2.5725e-01,  2.5248e-01, -4.8664e-01,  5.2641e-01,\n",
            "          3.1945e-02, -1.1371e-01,  1.2898e-01,  1.7616e-02, -5.8873e-01,\n",
            "         -3.1205e-01, -1.7425e-01,  3.7130e-01,  8.1557e-02,  2.2493e-02,\n",
            "          5.7508e-02,  5.3911e-01, -2.4688e-01,  5.3949e-02,  2.3146e-01,\n",
            "          1.8096e-01, -1.8447e-01,  1.6831e-01, -4.4167e-01,  3.4021e-01,\n",
            "         -1.9044e-01,  1.1400e-01, -2.4392e-02,  1.4687e-01,  1.7399e-01,\n",
            "         -3.5485e-01, -1.0527e-01,  1.4901e-03,  2.8630e-01, -1.4649e-01,\n",
            "          4.5241e-01, -1.9915e-01,  1.2439e-01, -2.0231e-01, -7.0797e-01,\n",
            "         -1.0892e-01, -3.8067e-01,  1.5391e-01, -4.2339e-01, -1.4566e-01,\n",
            "          1.7828e-01, -1.0982e-01,  3.0147e-01,  9.3374e-02,  1.2399e-01,\n",
            "         -3.6744e-01, -2.3386e-01,  4.2276e-01,  2.7063e-01, -2.7400e-02,\n",
            "          4.3830e-01,  1.4949e-02, -8.3726e-02, -3.3935e-01,  8.1589e-01,\n",
            "         -2.8694e-01,  5.4571e-02]], grad_fn=<MmBackward0>)\n",
            "Text Embeddings: tensor([[-0.0224, -0.0667, -0.0419,  ...,  0.5030, -0.0667,  0.3558],\n",
            "        [-0.1480,  0.0904, -0.0922,  ..., -0.2868, -0.1209,  0.4698],\n",
            "        [-0.3127,  0.1168, -0.0391,  ..., -0.1651, -0.0349, -0.1696]],\n",
            "       grad_fn=<MmBackward0>)\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Calculating cosine similarity"
      ],
      "metadata": {
        "id": "kak3P0EFMa1r"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "image_embedding = image_embeddings[0]\n",
        "query_embedding = text_embeddings[0]\n",
        "audio_embedding = text_embeddings[1]\n",
        "text_embedding = text_embeddings[2]\n",
        "\n",
        "import torch\n",
        "from torch.nn.functional import cosine_similarity\n",
        "\n",
        "# Assuming image_embedding, query_embedding, audio_embedding, and text_embedding are available\n",
        "\n",
        "# Calculate cosine similarity\n",
        "cos_sim_query_image = cosine_similarity(query_embedding.unsqueeze(0), image_embedding.unsqueeze(0)).item()\n",
        "cos_sim_query_audio = cosine_similarity(query_embedding.unsqueeze(0), audio_embedding.unsqueeze(0)).item()\n",
        "cos_sim_query_text = cosine_similarity(query_embedding.unsqueeze(0), text_embedding.unsqueeze(0)).item()\n",
        "\n",
        "# Print the results\n",
        "print(f\"Cosine Similarity between query and image embedding: {cos_sim_query_image:.4f}\")\n",
        "print(f\"Cosine Similarity between query and audio embedding: {cos_sim_query_audio:.4f}\")\n",
        "print(f\"Cosine Similarity between query and text embedding: {cos_sim_query_text:.4f}\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "yLBc3JkRMarp",
        "outputId": "5cd7910c-a1ef-4da1-8788-9969826f5b78"
      },
      "execution_count": 63,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Cosine Similarity between query and image embedding: 0.1996\n",
            "Cosine Similarity between query and audio embedding: 0.7889\n",
            "Cosine Similarity between query and text embedding: 0.4728\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Multimodal Augmented Generation from Retreival"
      ],
      "metadata": {
        "id": "CCEsYryAMheD"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "similarities = [cos_sim_query_image, cos_sim_query_audio, cos_sim_query_text]\n",
        "\n",
        "result = None\n",
        "if max(similarities) == cos_sim_query_image:\n",
        "    #image most similar, augmenting with image\n",
        "    model = genai.GenerativeModel('gemini-1.5-pro')\n",
        "    result = model.generate_content([query, Image.open('image.jpeg')])\n",
        "\n",
        "elif max(similarities) == cos_sim_query_audio:\n",
        "    #audio most similar, augmenting with audio. Here I'm using the transcript\n",
        "    #rather than the audio itself\n",
        "    model = genai.GenerativeModel('gemini-1.5-pro')\n",
        "    result = model.generate_content([query, 'audio transcript (may have inaccuracies): '+audio_transcription])\n",
        "\n",
        "elif max(similarities) == cos_sim_query_text:\n",
        "    #text most similar, augmenting with text\n",
        "    model = genai.GenerativeModel('gemini-1.5-pro')\n",
        "    result = model.generate_content([query, text_data])\n",
        "\n",
        "print(result.text)"
      ],
      "metadata": {
        "id": "vTm5YqltL8wQ",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 53
        },
        "outputId": "e971edb8-b3df-46e2-cfe7-450e2e6d0c7f"
      },
      "execution_count": 64,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "It sounds like you're trying to say **Turlough O'Carolan**. He was a famous Irish harpist and composer. It's easy to get his name a little mixed up - it's quite unique! \n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "5t1nDMV8zDV4"
      },
      "execution_count": null,
      "outputs": []
    }
  ]
}